home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / X11 / extensions / lbxstr.h < prev    next >
C/C++ Source or Header  |  2006-04-12  |  25KB  |  936 lines

  1. /* $Xorg: lbxstr.h,v 1.4 2001/02/13 20:14:04 pookie Exp $ */
  2. /*
  3.  * Copyright 1992 Network Computing Devices
  4.  *
  5.  * Permission to use, copy, modify, distribute, and sell this software and its
  6.  * documentation for any purpose is hereby granted without fee, provided that
  7.  * the above copyright notice appear in all copies and that both that
  8.  * copyright notice and this permission notice appear in supporting
  9.  * documentation, and that the name of NCD. not be used in advertising or
  10.  * publicity pertaining to distribution of the software without specific,
  11.  * written prior permission.  NCD. makes no representations about the
  12.  * suitability of this software for any purpose.  It is provided "as is"
  13.  * without express or implied warranty.
  14.  *
  15.  * NCD. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
  16.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD.
  17.  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  18.  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
  19.  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
  20.  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  21.  *
  22.  */
  23. /* $XFree86: xc/include/extensions/lbxstr.h,v 1.2 2001/08/01 00:44:35 tsi Exp $ */
  24.  
  25. #ifndef _LBXSTR_H_
  26. #define _LBXSTR_H_
  27.  
  28. #include <X11/extensions/XLbx.h>
  29.  
  30. #define LBXNAME "LBX"
  31.  
  32. #define LBX_MAJOR_VERSION    1
  33. #define LBX_MINOR_VERSION    0
  34.  
  35. /*
  36.  * Redefine some basic types used by structures defined herein.  This removes
  37.  * any possibility on 64-bit architectures of one entity viewing communicated
  38.  * data as 32-bit quantities and another entity viewing the same data as 64-bit
  39.  * quantities.
  40.  */
  41. #define XID CARD32
  42. #define Atom CARD32
  43. #define Colormap CARD32
  44. #define Drawable CARD32
  45. #define VisualID CARD32
  46. #define Window CARD32
  47.  
  48. typedef struct {
  49.     BOOL    success;        /* TRUE */
  50.     BOOL    changeType;
  51.     CARD16    majorVersion B16,
  52.         minorVersion B16;
  53.     CARD16    length B16;        /* 1/4 additional bytes in setup info */
  54.     CARD32    tag B32;
  55. } xLbxConnSetupPrefix;
  56.  
  57. typedef struct _LbxQueryVersion {
  58.     CARD8    reqType;        /* always LbxReqCode */
  59.     CARD8    lbxReqType;        /* always X_LbxQueryVersion */
  60.     CARD16    length B16;
  61. } xLbxQueryVersionReq;
  62. #define sz_xLbxQueryVersionReq    4
  63.  
  64. typedef struct {
  65.     BYTE    type;            /* X_Reply */
  66.     CARD8    unused;
  67.     CARD16    sequenceNumber B16;
  68.     CARD32    length B32;
  69.     CARD16    majorVersion B16;    /* major version of LBX protocol */
  70.     CARD16    minorVersion B16;    /* minor version of LBX protocol */
  71.     CARD32    pad0 B32;
  72.     CARD32    pad1 B32;
  73.     CARD32    pad2 B32;
  74.     CARD32    pad3 B32;
  75.     CARD32    pad4 B32;
  76. } xLbxQueryVersionReply;
  77. #define sz_xLbxQueryVersionReply    32
  78.  
  79. typedef struct _LbxStartProxy {
  80.     CARD8    reqType;    /* always LbxReqCode */
  81.     CARD8    lbxReqType;    /* always X_LbxStartProxy */
  82.     CARD16    length B16;
  83. } xLbxStartProxyReq;
  84. #define sz_xLbxStartProxyReq        4
  85.  
  86. typedef struct _LbxStopProxy {
  87.     CARD8    reqType;    /* always LbxReqCode */
  88.     CARD8    lbxReqType;    /* always X_LbxStopProxy */
  89.     CARD16    length B16;
  90. } xLbxStopProxyReq;
  91. #define sz_xLbxStopProxyReq        4
  92.  
  93. typedef struct _LbxSwitch {
  94.     CARD8    reqType;    /* always LbxReqCode */
  95.     CARD8    lbxReqType;    /* always X_LbxSwitch */
  96.     CARD16    length B16;
  97.     CARD32    client B32;    /* new client */
  98. } xLbxSwitchReq;
  99. #define sz_xLbxSwitchReq    8
  100.  
  101. typedef struct _LbxNewClient {
  102.     CARD8    reqType;    /* always LbxReqCode */
  103.     CARD8    lbxReqType;    /* always X_LbxNewClient */
  104.     CARD16    length B16;
  105.     CARD32    client B32;    /* new client */
  106. } xLbxNewClientReq;
  107. #define sz_xLbxNewClientReq    8
  108.  
  109. typedef struct _LbxCloseClient {
  110.     CARD8    reqType;    /* always LbxReqCode */
  111.     CARD8    lbxReqType;    /* always X_LbxCloseClient */
  112.     CARD16    length B16;
  113.     CARD32    client B32;    /* new client */
  114. } xLbxCloseClientReq;
  115. #define sz_xLbxCloseClientReq    8
  116.  
  117. typedef struct _LbxModifySequence {
  118.     CARD8    reqType;    /* always LbxReqCode */
  119.     CARD8    lbxReqType;    /* always X_LbxModifySequence */
  120.     CARD16    length B16;
  121.     CARD32    adjust B32;
  122. } xLbxModifySequenceReq;
  123. #define sz_xLbxModifySequenceReq    8
  124.     
  125. typedef struct _LbxAllowMotion {
  126.     CARD8    reqType;    /* always LbxReqCode */
  127.     CARD8    lbxReqType;    /* always X_LbxAllowMotion */
  128.     CARD16    length B16;
  129.     CARD32    num B32;
  130. } xLbxAllowMotionReq;
  131. #define sz_xLbxAllowMotionReq    8
  132.     
  133. typedef struct {
  134.     CARD8    reqType;    /* always LbxReqCode */
  135.     CARD8    lbxReqType;    /* always X_LbxGrabCmap */
  136.     CARD16    length B16;
  137.     Colormap    cmap B32;
  138. } xLbxGrabCmapReq;    
  139. #define sz_xLbxGrabCmapReq    8
  140.  
  141. #define LBX_SMART_GRAB        0x80
  142. #define LBX_AUTO_RELEASE    0x40
  143. #define LBX_3CHANNELS        0x20
  144. #define LBX_2BYTE_PIXELS    0x10
  145. #define LBX_RGB_BITS_MASK    0x0f
  146.  
  147. #define LBX_LIST_END        0
  148. #define LBX_PIXEL_PRIVATE    1
  149. #define LBX_PIXEL_SHARED    2
  150. #define LBX_PIXEL_RANGE_PRIVATE    3
  151. #define LBX_PIXEL_RANGE_SHARED    4
  152. #define LBX_NEXT_CHANNEL    5
  153.  
  154. typedef struct {
  155.     BYTE    type;            /* X_Reply */
  156.     CARD8    flags;
  157.     CARD16    sequenceNumber B16;
  158.     CARD32    length B32;
  159.     CARD32    pad0 B16;
  160.     CARD32    pad1 B32;
  161.     CARD32    pad2 B32;
  162.     CARD32    pad3 B32;
  163.     CARD32    pad4 B32;
  164.     CARD32    pad5 B16;
  165. } xLbxGrabCmapReply;
  166. #define sz_xLbxGrabCmapReply    32
  167. #define sz_xLbxGrabCmapReplyHdr    8
  168.  
  169.  
  170. typedef struct {
  171.     CARD8    reqType;    /* always LbxReqCode */
  172.     CARD8    lbxReqType;    /* always X_LbxReleaseCmap */
  173.     CARD16    length B16;
  174.     Colormap    cmap B32;
  175. } xLbxReleaseCmapReq;    
  176. #define sz_xLbxReleaseCmapReq    8
  177.  
  178. typedef struct {
  179.     CARD8    reqType;    /* always LbxReqCode */
  180.     CARD8    lbxReqType;    /* always X_LbxAllocColor */
  181.     CARD16    length B16;
  182.     Colormap    cmap B32;
  183.     CARD32    pixel B32;
  184.     CARD16    red B16, green B16, blue B16;
  185.     CARD16    pad B16;
  186. } xLbxAllocColorReq;    
  187. #define sz_xLbxAllocColorReq    20
  188.  
  189. typedef struct _LbxIncrementPixel {
  190.     CARD8    reqType;    /* always LbxReqCode */
  191.     CARD8    lbxReqType;    /* always X_LbxIncrementPixel */
  192.     CARD16    length B16;
  193.     CARD32    cmap B32;
  194.     CARD32    pixel B32;
  195. } xLbxIncrementPixelReq;
  196. #define sz_xLbxIncrementPixelReq    12
  197.  
  198. typedef struct _LbxDelta {
  199.     CARD8    reqType;    /* always LbxReqCode */
  200.     CARD8    lbxReqType;    /* always X_LbxDelta */
  201.     CARD16    length B16;
  202.     CARD8    diffs;        /* number of diffs */
  203.     CARD8    cindex;        /* cache index */
  204.                 /* list of diffs follows */
  205. } xLbxDeltaReq;
  206. #define sz_xLbxDeltaReq    6
  207.  
  208. typedef struct _LbxGetModifierMapping {
  209.     CARD8    reqType;    /* always LbxReqCode */
  210.     CARD8    lbxReqType;    /* always X_LbxGetModifierMapping */
  211.     CARD16    length B16;
  212. } xLbxGetModifierMappingReq;
  213. #define    sz_xLbxGetModifierMappingReq    4
  214.  
  215. typedef struct {
  216.     BYTE    type;            /* X_Reply */
  217.     CARD8    keyspermod;
  218.     CARD16    sequenceNumber B16;
  219.     CARD32    length B32;
  220.     CARD32    tag B32;
  221.     CARD32    pad0 B32;
  222.     CARD32    pad1 B32;
  223.     CARD32    pad2 B32;
  224.     CARD32    pad3 B32;
  225.     CARD32    pad4 B32;
  226. } xLbxGetModifierMappingReply;
  227. #define sz_xLbxGetModifierMappingReply    32
  228.  
  229. typedef struct _LbxGetKeyboardMapping {
  230.     CARD8    reqType;    /* always LbxReqCode */
  231.     CARD8    lbxReqType;    /* always X_LbxGetKeyboardMapping */
  232.     CARD16    length B16;
  233.     KeyCode    firstKeyCode;
  234.     CARD8    count;
  235.     CARD16    pad1 B16;
  236. } xLbxGetKeyboardMappingReq;
  237. #define    sz_xLbxGetKeyboardMappingReq    8
  238.  
  239. typedef struct {
  240.     BYTE    type;            /* X_Reply */
  241.     CARD8    keysperkeycode;
  242.     CARD16    sequenceNumber B16;
  243.     CARD32    length B32;
  244.     CARD32    tag B32;
  245.     CARD32    pad0 B32;
  246.     CARD32    pad1 B32;
  247.     CARD32    pad2 B32;
  248.     CARD32    pad3 B32;
  249.     CARD32    pad4 B32;
  250. } xLbxGetKeyboardMappingReply;
  251. #define sz_xLbxGetKeyboardMappingReply    32
  252.  
  253. typedef struct _LbxQueryFont {
  254.     CARD8    reqType;    /* always LbxReqCode */
  255.     CARD8    lbxReqType;    /* always X_LbxQueryFont */
  256.     CARD16    length B16;
  257.     CARD32    fid B32;
  258. } xLbxQueryFontReq;
  259. #define    sz_xLbxQueryFontReq    8
  260.  
  261. typedef struct _LbxInternAtoms {
  262.     CARD8    reqType;    /* always LbxReqCode */
  263.     CARD8    lbxReqType;    /* always X_LbxInternAtoms */
  264.     CARD16    length B16;
  265.     CARD16    num B16;
  266. } xLbxInternAtomsReq;
  267. #define sz_xLbxInternAtomsReq    6  
  268.  
  269. typedef struct {
  270.     BYTE    type;        /* X_Reply */
  271.     CARD8    unused;
  272.     CARD16    sequenceNumber B16;
  273.     CARD32    length B32;
  274.     CARD32    atomsStart B32;
  275.     CARD32    pad0 B32;
  276.     CARD32    pad1 B32;
  277.     CARD32    pad2 B32;
  278.     CARD32    pad3 B32;
  279.     CARD32    pad4 B32;
  280. } xLbxInternAtomsReply;
  281. #define sz_xLbxInternAtomsReply        32
  282. #define sz_xLbxInternAtomsReplyHdr    8
  283.  
  284.  
  285. typedef struct _LbxGetWinAttrAndGeom {
  286.     CARD8    reqType;    /* always LbxReqCode */
  287.     CARD8    lbxReqType;    /* always X_LbxGetWinAttrAndGeom */
  288.     CARD16    length B16;
  289.     CARD32    id B32;        /* window id */
  290. } xLbxGetWinAttrAndGeomReq;
  291. #define sz_xLbxGetWinAttrAndGeomReq 8
  292.  
  293. typedef struct {
  294.     BYTE type;  /* X_Reply */
  295.     CARD8 backingStore;
  296.     CARD16 sequenceNumber B16;
  297.     CARD32 length B32;    /* NOT 0; this is an extra-large reply */
  298.     VisualID visualID B32;
  299. #if defined(__cplusplus) || defined(c_plusplus)
  300.     CARD16 c_class B16;
  301. #else
  302.     CARD16 class B16;
  303. #endif
  304.     CARD8 bitGravity;
  305.     CARD8 winGravity;
  306.     CARD32 backingBitPlanes B32;
  307.     CARD32 backingPixel B32;
  308.     BOOL saveUnder;
  309.     BOOL mapInstalled;
  310.     CARD8 mapState;
  311.     BOOL override;
  312.     Colormap colormap B32;
  313.     CARD32 allEventMasks B32;
  314.     CARD32 yourEventMask B32;
  315.     CARD16 doNotPropagateMask B16;
  316.     CARD16 pad1 B16;
  317.     Window root B32;
  318.     INT16 x B16, y B16;
  319.     CARD16 width B16, height B16;
  320.     CARD16 borderWidth B16;
  321.     CARD8 depth;
  322.     CARD8 pad2;
  323. } xLbxGetWinAttrAndGeomReply;
  324. #define sz_xLbxGetWinAttrAndGeomReply 60
  325.  
  326.  
  327. typedef struct {
  328.     CARD8    reqType;    /* always LbxReqCode */
  329.     CARD8    lbxReqType;    /* always X_LbxSync */
  330.     CARD16    length B16;
  331. } xLbxSyncReq;
  332. #define sz_xLbxSyncReq    4
  333.  
  334. typedef struct {
  335.     BYTE    type;            /* X_Reply */
  336.     CARD8    pad0;
  337.     CARD16    sequenceNumber B16;
  338.     CARD32    length B32;
  339.     CARD32    pad1 B32;
  340.     CARD32    pad2 B32;
  341.     CARD32    pad3 B32;
  342.     CARD32    pad4 B32;
  343.     CARD32    pad5 B32;
  344.     CARD32    pad6 B32;
  345. } xLbxSyncReply;
  346. #define sz_xLbxSyncReply 32
  347.  
  348.  
  349. /* an LBX squished charinfo packs the data in a CARD32 as follows */
  350. #define    LBX_WIDTH_SHIFT        26
  351. #define    LBX_LEFT_SHIFT        20
  352. #define    LBX_RIGHT_SHIFT        13
  353. #define    LBX_ASCENT_SHIFT    7
  354. #define    LBX_DESCENT_SHIFT    0
  355.  
  356. #define    LBX_WIDTH_BITS        6
  357. #define    LBX_LEFT_BITS        6
  358. #define    LBX_RIGHT_BITS        7
  359. #define    LBX_ASCENT_BITS        6
  360. #define    LBX_DESCENT_BITS    7
  361.  
  362. #define    LBX_WIDTH_MASK        0xfc000000
  363. #define    LBX_LEFT_MASK        0x03f00000
  364. #define    LBX_RIGHT_MASK        0x000fe000
  365. #define    LBX_ASCENT_MASK        0x00001f80
  366. #define    LBX_DESCENT_MASK    0x0000007f
  367.  
  368. #define    LBX_MASK_BITS(val, n)    ((unsigned int) ((val) & ((1 << (n)) - 1)))
  369.  
  370. typedef struct {
  371.     CARD32    metrics B32;
  372. } xLbxCharInfo;
  373.  
  374. /* note that this is identical to xQueryFontReply except for missing 
  375.  * first 2 words
  376.  */
  377. typedef struct {
  378.     xCharInfo minBounds; 
  379. /* XXX do we need to leave this gunk? */
  380. #ifndef WORD64
  381.     CARD32 walign1 B32;
  382. #endif
  383.     xCharInfo maxBounds; 
  384. #ifndef WORD64
  385.     CARD32 walign2 B32;
  386. #endif
  387.     CARD16 minCharOrByte2 B16, maxCharOrByte2 B16;
  388.     CARD16 defaultChar B16;
  389.     CARD16 nFontProps B16;  /* followed by this many xFontProp structures */
  390.     CARD8 drawDirection;
  391.     CARD8 minByte1, maxByte1;
  392.     BOOL allCharsExist;
  393.     INT16 fontAscent B16, fontDescent B16;
  394.     CARD32 nCharInfos B32; /* followed by this many xLbxCharInfo structures */
  395. } xLbxFontInfo;
  396.  
  397. typedef struct {
  398.     BYTE    type;            /* X_Reply */
  399.     CARD8    compression;
  400.     CARD16    sequenceNumber B16;
  401.     CARD32    length B32;
  402.     CARD32    tag B32;
  403.     CARD32    pad0 B32;
  404.     CARD32    pad1 B32;
  405.     CARD32    pad2 B32;
  406.     CARD32    pad3 B32;
  407.     CARD32    pad4 B32;
  408.     /* X_QueryFont sticks much of the data in the base reply packet,
  409.      * but we hope that it won't be needed, (and it won't fit in 32 bytes
  410.      * with the tag anyways)
  411.      *
  412.      * if any additional data is needed, its sent in a xLbxFontInfo
  413.      */
  414. } xLbxQueryFontReply;
  415. #define sz_xLbxQueryFontReply    32
  416.  
  417. typedef struct _LbxChangeProperty {
  418.     CARD8    reqType;    /* always LbxReqCode */
  419.     CARD8    lbxReqType;    /* always X_LbxChangeProperty */
  420.     CARD16    length B16;
  421.     Window    window B32;
  422.     Atom    property B32;
  423.     Atom    type B32;
  424.     CARD8    format;
  425.     CARD8    mode;
  426.     BYTE    pad[2];
  427.     CARD32    nUnits B32;
  428. } xLbxChangePropertyReq;
  429. #define    sz_xLbxChangePropertyReq    24
  430.  
  431. typedef struct {
  432.     BYTE    type;            /* X_Reply */
  433.     CARD8    pad;
  434.     CARD16    sequenceNumber B16;
  435.     CARD32    length B32;
  436.     CARD32    tag B32;
  437.     CARD32    pad0 B32;
  438.     CARD32    pad1 B32;
  439.     CARD32    pad2 B32;
  440.     CARD32    pad3 B32;
  441.     CARD32    pad4 B32;
  442. } xLbxChangePropertyReply;
  443. #define sz_xLbxChangePropertyReply    32
  444.  
  445. typedef struct _LbxGetProperty {
  446.     CARD8    reqType;    /* always LbxReqCode */
  447.     CARD8    lbxReqType;    /* always X_LbxGetProperty */
  448.     CARD16    length B16;
  449.     Window    window B32;
  450.     Atom    property B32;
  451.     Atom    type B32;
  452.     CARD8    delete;
  453.     BYTE    pad[3];
  454.     CARD32    longOffset B32;
  455.     CARD32    longLength B32;
  456. } xLbxGetPropertyReq;
  457. #define    sz_xLbxGetPropertyReq    28
  458.  
  459. typedef struct {
  460.     BYTE    type;            /* X_Reply */
  461.     CARD8    format;
  462.     CARD16    sequenceNumber B16;
  463.     CARD32    length B32;
  464.     Atom    propertyType B32;
  465.     CARD32    bytesAfter B32;
  466.     CARD32    nItems B32;
  467.     CARD32    tag B32;
  468.     CARD32    pad1 B32;
  469.     CARD32    pad2 B32;
  470. } xLbxGetPropertyReply;
  471. #define sz_xLbxGetPropertyReply    32
  472.  
  473. typedef struct _LbxTagData {
  474.     CARD8    reqType;    /* always LbxReqCode */
  475.     CARD8    lbxReqType;    /* always X_LbxTagData */
  476.     CARD16    length B16;
  477.     XID        tag B32;
  478.     CARD32    real_length B32;
  479.     /* data */
  480. } xLbxTagDataReq;
  481. #define    sz_xLbxTagDataReq    12
  482.  
  483. typedef struct _LbxInvalidateTag {
  484.     CARD8    reqType;    /* always LbxReqCode */
  485.     CARD8    lbxReqType;    /* always X_LbxInvalidateTag */
  486.     CARD16    length B16;
  487.     CARD32    tag B32;
  488. } xLbxInvalidateTagReq;
  489. #define    sz_xLbxInvalidateTagReq    8
  490.  
  491. typedef struct _LbxPutImage {
  492.     CARD8    reqType;    /* always LbxReqCode */
  493.     CARD8    lbxReqType;    /* always X_LbxPutImage */
  494.     CARD16    length B16;
  495.     CARD8    compressionMethod;
  496.     CARD8    cacheEnts;
  497.     CARD8    bitPacked;
  498.     /* rest is variable */
  499. } xLbxPutImageReq;
  500. #define sz_xLbxPutImageReq    7
  501.  
  502. typedef struct {
  503.     CARD8    reqType;    /* always LbxReqCode */
  504.     CARD8    lbxReqType;    /* always X_LbxGetImage */
  505.     CARD16    length B16;
  506.     Drawable    drawable B32;
  507.     INT16    x B16, y B16;
  508.     CARD16    width B16, height B16;
  509.     CARD32    planeMask B32;
  510.     CARD8    format;
  511.     CARD8    pad1;
  512.     CARD16    pad2 B16;
  513. } xLbxGetImageReq;    
  514.  
  515. #define sz_xLbxGetImageReq 24
  516.  
  517. typedef struct {
  518.     BYTE type;            /* X_Reply */
  519.     CARD8 depth;
  520.     CARD16 sequenceNumber B16;
  521.     CARD32 lbxLength B32;
  522.     CARD32 xLength B32;
  523.     VisualID visual B32;
  524.     CARD8 compressionMethod;
  525.     CARD8 pad1;
  526.     CARD16 pad2 B16;
  527.     CARD32 pad3 B32;
  528.     CARD32 pad4 B32;
  529.     CARD32 pad5 B32;
  530. } xLbxGetImageReply;
  531.  
  532. #define sz_xLbxGetImageReply 32
  533.   
  534. /* Following used for LbxPolyPoint, LbxPolyLine, LbxPolySegment,
  535.    LbxPolyRectangle, LbxPolyArc, LbxPolyFillRectangle and LbxPolyFillArc */
  536.  
  537. #define GFX_CACHE_SIZE  15
  538.  
  539. #define GFXdCacheEnt(e)        ((e) & 0xf)
  540. #define GFXgCacheEnt(e)        (((e) >> 4) & 0xf)
  541. #define GFXCacheEnts(d,g)   (((d) & 0xf) | (((g) & 0xf) << 4))
  542.  
  543. #define GFXCacheNone   0xf
  544.  
  545. typedef struct _LbxPolyPoint {
  546.     CARD8    reqType;    /* always LbxReqCode */
  547.     CARD8    lbxReqType;
  548.     CARD16    length B16;
  549.     CARD8    cacheEnts;
  550.     CARD8    padBytes;
  551. } xLbxPolyPointReq;
  552.  
  553. #define sz_xLbxPolyPointReq    6
  554.  
  555. typedef xLbxPolyPointReq xLbxPolyLineReq;
  556. typedef xLbxPolyPointReq xLbxPolySegmentReq;
  557. typedef xLbxPolyPointReq xLbxPolyRectangleReq;
  558. typedef xLbxPolyPointReq xLbxPolyArcReq;
  559. typedef xLbxPolyPointReq xLbxPolyFillRectangleReq;
  560. typedef xLbxPolyPointReq xLbxPolyFillArcReq;
  561.  
  562. #define sz_xLbxPolyLineReq        sz_xLbxPolyPointReq
  563. #define sz_xLbxPolySegmentReq        sz_xLbxPolyPointReq
  564. #define sz_xLbxPolyRectangleReq        sz_xLbxPolyPointReq
  565. #define sz_xLbxPolyArcReq        sz_xLbxPolyPointReq
  566. #define sz_xLbxPolyFillRectangleReq    sz_xLbxPolyPointReq
  567. #define sz_xLbxPolyFillArc        sz_xLbxPolyPointReq
  568.  
  569. typedef struct _LbxFillPoly {
  570.     CARD8    reqType;    /* always LbxReqCode */
  571.     CARD8    lbxReqType;
  572.     CARD16    length B16;
  573.     CARD8    cacheEnts;
  574.     BYTE    shape;
  575.     CARD8    padBytes;
  576. } xLbxFillPolyReq;
  577. #define sz_xLbxFillPolyReq    7
  578.  
  579. typedef struct _LbxCopyArea {
  580.     CARD8    reqType;    /* always LbxReqCode */
  581.     CARD8    lbxReqType;
  582.     CARD16    length B16;
  583.     CARD8    srcCache;    /* source drawable */
  584.     CARD8    cacheEnts;    /* dest drawable and gc */
  585.     /* followed by encoded src x, src y, dst x, dst y, width, height */
  586. } xLbxCopyAreaReq;
  587.     
  588. #define sz_xLbxCopyAreaReq  6
  589.  
  590. typedef struct _LbxCopyPlane {
  591.     CARD8    reqType;    /* always LbxReqCode */
  592.     CARD8    lbxReqType;
  593.     CARD16    length B16;
  594.     CARD32    bitPlane B32;
  595.     CARD8    srcCache;    /* source drawable */
  596.     CARD8    cacheEnts;    /* dest drawable and gc */
  597.     /* followed by encoded src x, src y, dst x, dst y, width, height */
  598. } xLbxCopyPlaneReq;
  599.     
  600. #define sz_xLbxCopyPlaneReq  10
  601.  
  602. typedef struct _LbxPolyText {
  603.     CARD8    reqType;    /* always LbxReqCode */
  604.     CARD8    lbxReqType;
  605.     CARD16    length B16;
  606.     CARD8    cacheEnts;
  607.     /* followed by encoded src x, src y coordinates and text elts */
  608. } xLbxPolyTextReq;
  609.  
  610. #define sz_xLbxPolyTextReq  5
  611.  
  612. typedef xLbxPolyTextReq xLbxPolyText8Req;
  613. typedef xLbxPolyTextReq xLbxPolyText16Req;
  614.     
  615. #define sz_xLbxPolyTextReq    5
  616. #define sz_xLbxPolyText8Req    5
  617. #define sz_xLbxPolyText16Req    5
  618.  
  619. typedef struct _LbxImageText {
  620.     CARD8    reqType;    /* always LbxReqCode */
  621.     CARD8    lbxReqType;
  622.     CARD16    length B16;
  623.     CARD8    cacheEnts;
  624.     CARD8    nChars;
  625.     /* followed by encoded src x, src y coordinates and string */
  626. } xLbxImageTextReq;
  627.     
  628. typedef xLbxImageTextReq xLbxImageText8Req;
  629. typedef xLbxImageTextReq xLbxImageText16Req;
  630.     
  631. #define sz_xLbxImageTextReq    6
  632. #define sz_xLbxImageText8Req    6
  633. #define sz_xLbxImageText16Req    6
  634.  
  635. typedef struct {
  636.     CARD8       offset;
  637.     CARD8       diff;
  638. } xLbxDiffItem;
  639. #define sz_xLbxDiffItem    2
  640.  
  641. typedef struct {
  642.     BYTE    type;        /* X_Reply */
  643.     CARD8    nOpts;
  644.     CARD16    sequenceNumber B16;
  645.     CARD32    length B32;
  646.     CARD32    optDataStart B32;
  647.     CARD32    pad0 B32;
  648.     CARD32    pad1 B32;
  649.     CARD32    pad2 B32;
  650.     CARD32    pad3 B32;
  651.     CARD32    pad4 B32;
  652. } xLbxStartReply;
  653. #define sz_xLbxStartReply    32
  654. #define sz_xLbxStartReplyHdr    8
  655.  
  656. typedef struct _LbxQueryExtension {
  657.     CARD8    reqType;    /* always LbxReqCode */
  658.     CARD8    lbxReqType;    /* always X_LbxQueryExtension */
  659.     CARD16    length B16;
  660.     CARD32    nbytes B32;
  661. } xLbxQueryExtensionReq;
  662. #define    sz_xLbxQueryExtensionReq    8
  663.  
  664. typedef struct _LbxQueryExtensionReply {
  665.     BYTE    type;            /* X_Reply */
  666.     CARD8    numReqs;
  667.     CARD16    sequenceNumber B16;
  668.     CARD32    length B32;
  669.     BOOL    present;
  670.     CARD8    major_opcode;
  671.     CARD8    first_event;
  672.     CARD8    first_error;
  673.     CARD32    pad0 B32;
  674.     CARD32    pad1 B32;
  675.     CARD32    pad2 B32;
  676.     CARD32    pad3 B32;
  677.     CARD32    pad4 B32;
  678.  
  679.     /* reply & event generating requests */
  680. } xLbxQueryExtensionReply;
  681. #define sz_xLbxQueryExtensionReply    32
  682.  
  683.  
  684. typedef struct _LbxBeginLargeRequest {
  685.     CARD8    reqType;    /* always LbxReqCode */
  686.     CARD8    lbxReqType;    /* always X_LbxBeginLargeRequest */
  687.     CARD16    length B16;
  688.     CARD32    largeReqLength B32;
  689. } xLbxBeginLargeRequestReq;
  690. #define    sz_BeginLargeRequestReq 8
  691.  
  692. typedef struct _LbxLargeRequestData {
  693.     CARD8    reqType;    /* always LbxReqCode */
  694.     CARD8    lbxReqType;    /* always X_LbxLargeRequestData */
  695.     CARD16    length B16;
  696.     /* followed by LISTofCARD8 data */
  697. } xLbxLargeRequestDataReq;
  698. #define    sz_LargeRequestDataReq 4
  699.  
  700. typedef struct _LbxEndLargeRequest {
  701.     CARD8    reqType;    /* always LbxReqCode */
  702.     CARD8    lbxReqType;    /* always X_LbxEndLargeRequest */
  703.     CARD16    length B16;
  704. } xLbxEndLargeRequestReq;
  705. #define    sz_EndLargeRequestReq 4
  706.  
  707.  
  708.  
  709. typedef struct _LbxSwitchEvent {
  710.     BYTE    type;        /* always eventBase + LbxEvent */
  711.     BYTE    lbxType;    /* LbxSwitchEvent */
  712.     CARD16    pad B16;
  713.     CARD32    client B32;
  714. } xLbxSwitchEvent;
  715. #define sz_xLbxSwitchEvent    8
  716.  
  717. typedef struct _LbxCloseEvent {
  718.     BYTE    type;        /* always eventBase + LbxEvent */
  719.     BYTE    lbxType;    /* LbxCloseEvent */
  720.     CARD16    sequenceNumber B16;
  721.     CARD32    client B32;
  722.     CARD32    pad1 B32;
  723.     CARD32    pad2 B32;
  724.     CARD32    pad3 B32;
  725.     CARD32    pad4 B32;
  726.     CARD32    pad5 B32;
  727.     CARD32    pad6 B32;
  728. } xLbxCloseEvent;
  729. #define sz_xLbxCloseEvent    32
  730.  
  731. typedef struct _LbxInvalidateTagEvent {
  732.     BYTE    type;        /* always eventBase + LbxEvent */
  733.     BYTE    lbxType;    /* LbxInvalidateTagEvent */
  734.     CARD16    sequenceNumber B16;
  735.     CARD32    tag B32;
  736.     CARD32    tagType B32;
  737.     CARD32    pad1 B32;
  738.     CARD32    pad2 B32;
  739.     CARD32    pad3 B32;
  740.     CARD32    pad4 B32;
  741.     CARD32    pad5 B32;
  742. } xLbxInvalidateTagEvent;
  743. #define sz_xLbxInvalidateTagEvent 32
  744.  
  745. typedef struct _LbxSendTagDataEvent {
  746.     BYTE    type;        /* always eventBase + LbxEvent */
  747.     BYTE    lbxType;    /* LbxSendTagDataEvent */
  748.     CARD16    sequenceNumber B16;
  749.     CARD32    tag B32;
  750.     CARD32    tagType B32;
  751.     CARD32    pad1 B32;
  752.     CARD32    pad2 B32;
  753.     CARD32    pad3 B32;
  754.     CARD32    pad4 B32;
  755.     CARD32    pad5 B32;
  756. } xLbxSendTagDataEvent;
  757. #define sz_xLbxSendTagDataEvent 32
  758.  
  759. typedef struct _LbxListenToOneEvent {
  760.     BYTE    type;        /* always eventBase + LbxEvent */
  761.     BYTE    lbxType;    /* LbxListenToOneEvent */
  762.     CARD16    sequenceNumber B16;
  763.     CARD32    client B32;
  764.     CARD32    pad1 B32;
  765.     CARD32    pad2 B32;
  766.     CARD32    pad3 B32;
  767.     CARD32    pad4 B32;
  768.     CARD32    pad5 B32;
  769.     CARD32    pad6 B32;
  770. } xLbxListenToOneEvent;
  771. #define sz_xLbxListenToOneEvent 32
  772.  
  773. typedef struct _LbxListenToAllEvent {
  774.     BYTE    type;        /* always eventBase + LbxEvent */
  775.     BYTE    lbxType;    /* LbxListenToAllEvent */
  776.     CARD16    sequenceNumber B16;
  777.     CARD32    pad1 B32;
  778.     CARD32    pad2 B32;
  779.     CARD32    pad3 B32;
  780.     CARD32    pad4 B32;
  781.     CARD32    pad5 B32;
  782.     CARD32    pad6 B32;
  783.     CARD32    pad7 B32;
  784. } xLbxListenToAllEvent;
  785. #define sz_xLbxListenToOneEvent 32
  786.  
  787. typedef struct _LbxReleaseCmapEvent {
  788.     BYTE    type;        /* always eventBase + LbxEvent */
  789.     BYTE    lbxType;    /* LbxReleaseCmapEvent */
  790.     CARD16    sequenceNumber B16;
  791.     Colormap    colormap B32;
  792.     CARD32    pad1 B32;
  793.     CARD32    pad2 B32;
  794.     CARD32    pad3 B32;
  795.     CARD32    pad4 B32;
  796.     CARD32    pad5 B32;
  797.     CARD32    pad6 B32;
  798. } xLbxReleaseCmapEvent;
  799. #define sz_xLbxReleaseCmapEvent    32
  800.  
  801.  
  802. typedef struct _LbxFreeCellsEvent {
  803.     BYTE    type;        /* always eventBase + LbxEvent */
  804.     BYTE    lbxType;    /* LbxFreeCellsEvent */
  805.     CARD16    sequenceNumber B16;
  806.     Colormap    colormap B32;
  807.     CARD32    pixelStart B32;
  808.     CARD32    pixelEnd B32;
  809.     CARD32    pad1 B32;
  810.     CARD32    pad2 B32;
  811.     CARD32    pad3 B32;
  812.     CARD32    pad4 B32;
  813. } xLbxFreeCellsEvent;
  814. #define sz_xLbxFreeCellsEvent    32
  815.  
  816.  
  817. /*
  818.  * squished X event sizes.  If these change, be sure to update lbxquish.c
  819.  * and unsquish.c appropriately
  820.  *
  821.  * lbxsz_* is the padded squished length
  822.  * lbxupsz_* is the unpadded squished length
  823.  */
  824.  
  825. #define      lbxsz_KeyButtonEvent        32
  826. #define    lbxupsz_KeyButtonEvent        31
  827.  
  828. #define      lbxsz_EnterLeaveEvent        32
  829. #define    lbxupsz_EnterLeaveEvent        32
  830.  
  831. #define      lbxsz_FocusEvent        12
  832. #define    lbxupsz_FocusEvent        9
  833.  
  834. #define      lbxsz_KeymapEvent        32
  835. #define    lbxupsz_KeymapEvent        32
  836.  
  837. #define      lbxsz_ExposeEvent        20
  838. #define    lbxupsz_ExposeEvent        18
  839.  
  840. #define      lbxsz_GfxExposeEvent        24
  841. #define    lbxupsz_GfxExposeEvent        21
  842.  
  843. #define      lbxsz_NoExposeEvent        12
  844. #define    lbxupsz_NoExposeEvent        11
  845.  
  846. #define      lbxsz_VisibilityEvent        12
  847. #define    lbxupsz_VisibilityEvent        9
  848.  
  849. #define      lbxsz_CreateNotifyEvent    24
  850. #define    lbxupsz_CreateNotifyEvent    23
  851.  
  852. #define      lbxsz_DestroyNotifyEvent    12
  853. #define    lbxupsz_DestroyNotifyEvent    12
  854.  
  855. #define      lbxsz_UnmapNotifyEvent    16
  856. #define    lbxupsz_UnmapNotifyEvent    13
  857.  
  858. #define      lbxsz_MapNotifyEvent        16
  859. #define    lbxupsz_MapNotifyEvent        13
  860.  
  861. #define      lbxsz_MapRequestEvent        12
  862. #define    lbxupsz_MapRequestEvent        12
  863.  
  864. #define      lbxsz_ReparentEvent        24
  865. #define    lbxupsz_ReparentEvent        21
  866.  
  867. #define      lbxsz_ConfigureNotifyEvent    28
  868. #define    lbxupsz_ConfigureNotifyEvent    27
  869.  
  870. #define      lbxsz_ConfigureRequestEvent    28
  871. #define    lbxupsz_ConfigureRequestEvent    28
  872.  
  873. #define      lbxsz_GravityEvent        16
  874. #define    lbxupsz_GravityEvent        16
  875.  
  876. #define      lbxsz_ResizeRequestEvent    12
  877. #define    lbxupsz_ResizeRequestEvent    12
  878.  
  879. #define      lbxsz_CirculateEvent        20
  880. #define    lbxupsz_CirculateEvent        17
  881.  
  882. #define      lbxsz_PropertyEvent        20
  883. #define    lbxupsz_PropertyEvent        17
  884.  
  885. #define      lbxsz_SelectionClearEvent    16
  886. #define    lbxupsz_SelectionClearEvent    16
  887.  
  888. #define      lbxsz_SelectionRequestEvent    28
  889. #define    lbxupsz_SelectionRequestEvent    28
  890.  
  891. #define      lbxsz_SelectionNotifyEvent    24
  892. #define    lbxupsz_SelectionNotifyEvent    24
  893.  
  894. #define      lbxsz_ColormapEvent        16
  895. #define    lbxupsz_ColormapEvent        14
  896.  
  897. #define      lbxsz_MappingNotifyEvent    8
  898. #define    lbxupsz_MappingNotifyEvent    7
  899.  
  900. #define      lbxsz_ClientMessageEvent    32
  901. #define    lbxupsz_ClientMessageEvent    32
  902.  
  903. #define    lbxsz_UnknownEvent        32
  904.  
  905. #ifdef DEBUG
  906.  
  907. #define DBG_SWITCH    0x00000001
  908. #define DBG_CLOSE    0x00000002
  909. #define DBG_IO        0x00000004
  910. #define DBG_READ_REQ    0x00000008
  911. #define DBG_LEN        0x00000010
  912. #define DBG_BLOCK    0x00000020
  913. #define DBG_CLIENT    0x00000040
  914. #define DBG_DELTA    0x00000080
  915.  
  916. extern int lbxDebug;
  917.  
  918. #define DBG(n,m)    if (lbxDebug & (n)) { fprintf m; } else
  919. #else
  920. #define DBG(n,m)
  921. #endif
  922.  
  923. /*
  924.  * Cancel the previous redefinition of the basic types, thus restoring their
  925.  * X.h definitions.
  926.  */
  927.  
  928. #undef XID
  929. #undef Atom
  930. #undef Colormap
  931. #undef Drawable
  932. #undef VisualID
  933. #undef Window
  934.  
  935. #endif    /* _LBXSTR_H_ */
  936.